On the Impact of Naming Methods for Heap-Oriented Pointers in C Programs
نویسندگان
چکیده
Many applications written in C allocate memory blocks for their major data structures from the heap space at runtime. The analysis of heap-oriented pointers in such programs is critical for compilers to generate high performance code. However, most previous research on pointer analysis mostly focuses on pointers pointing to global or local variables. In this paper, we study points-to analysis of heaporiented pointers using profiling information. An instrumentation tool and a set of library routines are developed to measure points-to sets of memory references at runtime. Different naming methods for heap-oriented pointers are studied. We found that it is very important to adopt appropriate naming methods to recognize wrapper functions for memory allocation and memory management functions defined by users. Based on these naming methods, the approaches in pointer analysis, such as flow sensitivity and context sensitivity, are examined with the runtime tool. The program characteristics are observed at runtime to evaluate what kind of compiler analysis is needed. Experiments are conducted on SPEC CPU2000 integer benchmarks. We found that flow sensitivity and context sensitivity have little impact on the analysis of heap-oriented pointers.
منابع مشابه
An Empirical Study on the Granularity of Pointer Analysis in C Programs
Pointer analysis plays a critical role in modern C compilers because of the frequent appearances of pointer expressions. It is even more important for data dependence analysis, which is essential in exploiting parallelism, because complex data structures such as arrays are often accessed through pointers in C. One of the important aspects of pointer analysis methods is their granularity, the wa...
متن کاملEffects of Pregnant Leach Solution Temperature on the Permeability of Gravelly Drainage Layer of Heap Leaching Structures
In copper heap leaching structures, the ore is leached by an acidic solution. After dissolving the ore mineral, the heap is drained off in the acidic solution using a drainage system (consisting of a network of perforated polyethylene pipes and gravelly drainage layers) and is, then, transferred to the leaching plant for copper extraction where the copper is extracted and the remaining solution...
متن کاملFat Pointers, Skinny Annotations: A Heap Model for Modular C Verification
Folklore has it that verification of functional properties of C programs is intractable without making compromises on soundness of the heap model or coverage of C features. In contrast, we present a heap model for deductive verification that achieves (1) soundness by explicitly keeping track of runtime type assignment of pointers, (2) completeness and precision by accounting for changes to that...
متن کاملTest Input Generation for Programs with Pointers
Software testing is an essential process to improve software quality in practice. Researchers have proposed several techniques to automate parts of this process. In particular, symbolic execution can be used to automatically generate a set of test inputs that achieves high code coverage. However, most state-of-the-art symbolic execution approaches cannot directly handle programs whose inputs ar...
متن کاملHeap Analysis Design: An Empirical Approach
Despite extensive research the construction of a precise and scalable static heap analysis for object-oriented programs remains an open problem. This paper argues that much of the difficulty is the result of empirically unvalidated and inappropriate design decisions. We examine three of them and determine that in practice: (1) strong updates are not necessary for obtaining precise results (2) f...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2002